package com.cskaoyan.day7._03_linkedhashmap;

import java.util.LinkedHashMap;

/**
 * @author Common-zhou
 * @since 2023-03-06 10:20
 */
public class Demo2 {
    public static void main(String[] args) {
        //LinkedHashMap()
        //构造一个带默认初始容量 (16) 和加载因子 (0.75) 的空插入顺序 LinkedHashMap 实例。
        //LinkedHashMap(int initialCapacity)
        //构造一个带指定初始容量和默认加载因子 (0.75) 的空插入顺序 LinkedHashMap 实例。
        //LinkedHashMap(int initialCapacity, float loadFactor)
        //构造一个带指定初始容量和加载因子的空插入顺序 LinkedHashMap 实例。
        //LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
        //构造一个带指定初始容量、加载因子和排序模式的空 LinkedHashMap 实例。
        //LinkedHashMap(Map<? extends K,? extends V> m)
        //构造一个映射关系与指定映射相同的插入顺序 LinkedHashMap 实例。

        // 直接调用了父类的构造方法 ，自己就赋值了一个accessOrder =false
        LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>();

        // 会求助谁？  直接使用了父类的构造方法
        LinkedHashMap<String, String> linkedHashMap2 = new LinkedHashMap<>(10);

        //LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
        LinkedHashMap<String, String> linkedHashMap3 = new LinkedHashMap<>(16, 0.75f, true);

        linkedHashMap3.put("zs", "18");
        linkedHashMap3.put("ls", "19");
        linkedHashMap3.put("wu", "21");

        System.out.println(linkedHashMap3);

        // 主要区别.accessOrder主要控制获取后的行为
        // 如果获取了这个键，就把它放在最后。
        linkedHashMap3.get("ls");
        System.out.println(linkedHashMap3);


    }
}
